﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Solution.Business.Component;
using Solution.Business.Entities;
using Solution.Data;
using System.Net.Mail;

namespace Solution.UI.Web.Controllers
{
    public class ContactController : Controller
    {
        private SolutionEntities db = new SolutionEntities();
        //
        // GET: /Contact/

        public ActionResult Index()
        {
            return View();
        }

        [HttpPost]
        [ValidateInput(false)]
        public ActionResult Index(Contact contact)
        {
            if (ModelState.IsValid)
            {
                if (contact.Name != null && contact.Address != null && contact.Tel != null && contact.Mail != null && contact.Detail != null)
                {
                    ViewBag.content = "";
                    ViewBag.content += "Tên khách hàng :" + contact.Name;
                    ViewBag.content += "<br /> Địa chỉ :" + contact.Address;
                    ViewBag.content += "<br /> Số điện thoại :" + contact.Tel;
                    ViewBag.content += "<br /> Email :" + contact.Mail;
                    ViewBag.content += "<br /> Nội dung tin :" + contact.Detail;

                    MailMessage msg = new MailMessage();
                    var list = Business.Component.MailInfoComponent.MailInfo_GetByTop("1000", "", "");
                    string mailto = list[0].Mail_Noreply;
                    string password = list[0].Mail_Password;
                    string host = "";
                    if (list[0].Mail_Smtp != null)
                    {
                        host = list[0].Mail_Smtp;
                    }
                    else
                    {
                        host = "smtp.gmail.com";
                    }
                    int port = 0;
                    if (list[0].Mail_Port != null)
                    {
                        port = Int32.Parse(list[0].Mail_Port.ToString());
                    }
                    else
                    {
                        port = 587;
                    }

                    string cc = "buithanhtung2509@gmail.com";
                    msg.From = (new MailAddress(mailto, "Liên hệ BĐS", System.Text.Encoding.UTF8));
                    msg.To.Add(mailto);
                    msg.Bcc.Add(cc);
                    msg.Subject = "Liên hệ từ trang Sanchinhchu.vn";
                    msg.SubjectEncoding = System.Text.Encoding.UTF8;
                    msg.Body = ViewBag.content;

                    msg.IsBodyHtml = true;
                    msg.BodyEncoding = System.Text.Encoding.UTF8;

                    System.Net.NetworkCredential mailAuthentication = new System.Net.NetworkCredential();
                    mailAuthentication.UserName = "buithanhtung2509@gmail.com";
                    mailAuthentication.Password = "tungpro2509";
                    System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient(host, 587);
                    mailClient.EnableSsl = true;
                    mailClient.UseDefaultCredentials = false;
                    mailClient.Credentials = mailAuthentication;

                    try
                    {
                        mailClient.Send(msg);
                        contact.Date = DateTime.Now;
                        db.Contacts.Add(contact);
                        db.SaveChanges();
                        ModelState.AddModelError("", "Bạn đã gửi thành công !!");
                    }
                    catch
                    {
                        ModelState.AddModelError("", "Hệ thống đã nhận đặt hàng của bạn nhưng đã có lỗi xẩy ra khi gửi mail cho ban quản trị !!");
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Bạn chưa nhập đầy đủ thông tin cần nhập vào ô có dấu * !");
                }
            }
            return View(contact);
        }
    }
}
